const { DataTypes, Model } = require("sequelize");
const sequelize = require("../../db/sequelize");
const bcrypt = require("bcrypt");
/**
 * 定义用户模型
 */
class User extends Model {
};
User.init({
    id:{
        type:DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    username:{
        type:DataTypes.STRING,
        unique:true
    },
    password: {
        type: DataTypes.STRING,
        set(value) {//保存密码时需要加密
            this.setDataValue("password",bcrypt.hashSync(value,12))
        }
    },
    avatar:{
        type:DataTypes.STRING
    },
    //昵称
    nickname:{
        type:DataTypes.STRING
    },
    phone:{
        type:DataTypes.STRING,
        unique:true
    },
    email:{
        type:DataTypes.STRING,
        unique:true
    },
    user_level_id:{
        type:DataTypes.INTEGER
    },
    last_login_time:{
        type:DataTypes.DATE
    },
    wechat_openid:{
        type:DataTypes.STRING
    },
    share_num:{
        type:DataTypes.INTEGER
    },
    share_order_num:{
        type:DataTypes.INTEGER
    },
    order_price:{
        type:DataTypes.DOUBLE(10,2)
    },
    commission:{
        type:DataTypes.DOUBLE(10,2)
    },
    cash_out_price:{
        type:DataTypes.DOUBLE(10,2)
    },
    cash_out_time:{
        type:DataTypes.INTEGER
    },
    no_cash_out_price:{
        type:DataTypes.DOUBLE(10,2)
    },
    status:{
        type:DataTypes.TINYINT,
        defaultValue:1
    }
}, {
    sequelize,//自动注入
    modelName: "Users",
    tableName: "user",
    createdAt:"create_time",
    updatedAt:"update_time",
})
module.exports = User
